软件测试

您所在的位置:网站首页 stock prices什么意思 软件测试

软件测试

2023-03-09 22:55| 来源: 网络整理| 查看: 265

数据驱动

在实际的测试工作中,通常需要对大量的测试数据进行验证,以保证软件的正确性。这种数据量大的测 试,在功能测试中非常耗费人力物力,但是在自动化测试中,却非常容易实现。只要编写好测试的操作 步骤,然后将多组不同的测试数据传入到相同的测试用例中,就能轻松实现对不同测试数据的验证。 前面学习了参数化用例,当数据量非常大的时候,我们不能把所有的用例都放在测试模块中。可以将数 据存放到一个外部文件中,使用的时候将外部文件的数据读取出来,也方便测试数据的管理。数据与测 试用例分别管理,可以利用外部数据源 YAML、Json、Excel、CSV 等工具管理测试数据。这里推荐使 用 YAML 工具。

YAML 介绍

YAML 是在开发中的一种标记语言,适合用来表达或编辑数据结构、各种配置文件等。YAML 不局限于 语言,可以用于不同语言程序间的数据传递(类似于 Json)。YAML 具有丰富的语法结构和可扩展性, YAML 的配置文件后缀为 .yml 或 .yaml(例如:data.yaml)。

YAML 的基本语法

大小写敏感

使用缩进表示层级关系

缩进不允许使用 tab,只允许空格

缩进的空格数不重要,只要相同层级的元素左对齐即可

'#'表示注释

YAML 支持数据类型

对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

纯量:单个的、不可再分的值

YAML 表示列表

以 - 开头的行表示构成一个数组:

- hogwarts1 - hogwarts2 - hogwarts3

对应的 python 的数据结构是:['hogwarts1','hogwarts2','hogwarts3']

也可以列表嵌套列表,例如:

- - hogwarts1 - hogwarts2 - hogwarts3

对应的 python 的数据结构是: [['hogwarts1','hogwarts2','hogwarts3']]

YAML 表示字典

key: value,冒号后面要加空格。

id: 1 name: company1 price: 200W

上面表达 python 里的字典: {'id': 1, 'name': 'company1', 'price': '200W'} 相对复杂的例子:

hogwarts: - id: 1 name: 格兰芬多 price: 200 - id: 2 name: 拉文克劳 price: 200

对应的 python 的数据结构是: {'hogwarts': [{'id': 1, 'name': '格兰芬多', 'price': 200}, {'id': 2, 'name': '拉文克劳', 'price': 200}]}

YAML 表示纯量

纯量是最基本的,不可再分的值,包括:

字符串 布尔值 整数 浮点数 Null 时间 日期

pytest 结合 YAML

PyYAML 模块在 python 中用于处理 YAML 格式数据,主要使用 yaml.safe_dump() 和 yaml.safe_load() 函数将 Python 对象和 YAML 格式数据相互转换。

安装

pip install PyYAML

案例

创建用例文件以及数据文件来完成数据驱动的测试案例,创建一个文件夹 testdata,在这个文件夹下创 建 data.yml 和 test_yaml.py 文件。

创建 data.yml 文件:

- - 1 - 2 - - 20 - 30

创建“test_yaml.py”,代码如下:

import pytest import yaml @pytest.mark.parametrize("a,b", yaml.safe_load(open("data.yml",\ encoding='utf-8'))) def test_foo(a,b): print(f"a + b = {a + b}")

代码分析:

yaml 文件里定义了列表数据,通过 open( ) 方法获取 data.yml 文件对象,使用 yaml.safe_load() 加载这个文件对象,将 yaml 格式文件转换为 Python 对象,分别传递到用例中生成多条用例执行。

运行结果:

... test_params.py::test_foo[1-2] test_params.py::test_foo[20-30] ...

运行结果中 [1-2] 和 [20-30] 表示传入的两组参数,分别传入 test_foo( ) 用例方法中执行,并且 分别生成两条测试结果。pytest 结合 yaml 实现数据驱动,yaml 文件作为用例数据源,驱动测试用例的 执行,使测试用例数据维护更加方便快捷。

更多软件测试行业资讯可关注 @南音主页了解详情哦~

推荐阅读:

南音:测试开发简历写作与面试指导?

南音:软件测试的未来前景如何?

南音:为什么越来越多的人选择软件测试?

南音:软件测试 | 面试的三大误区,你有没有中招

南音:求职不顺学社来帮你| 不限专业,应往届均可报名!春招还没拿到offer的同学注意啦!

南音:软件测试 | 什么是敏捷开发Scrum

南音:软件测试 | 极限编程XP(EXtreme Programming)

南音:软件测试 | 带你了解DevOps开发模型

南音:软件测试 | JVM Sandbox使用入门

南音:软件测试 | Frida的安装与使用

南音:软件测试 | Vue.js的安装与介绍

南音:软件测试 | vue restful请求

南音:软件测试 | Java数据持久化技术

南音:软件测试 | Spring Boot的RESTful设计与实现



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3